Multi-Version Concurrency Control (MVCC)

Database Tutorials - কাউচডিবি (CouchDB) CouchDB আর্কিটেকচার |
224
224

Multi-Version Concurrency Control (MVCC) হল একটি কনকারেন্ট এক্সেস কন্ট্রোল প্রযুক্তি যা ডাটাবেস সিস্টেমে একাধিক ব্যবহারকারী বা প্রক্রিয়ার দ্বারা ডেটার একসাথে অ্যাক্সেস এবং আপডেট করার সময় কনফ্লিক্ট এড়াতে সহায়ক। MVCC ডেটাবেসের প্রতিটি রেকর্ডের একাধিক সংস্করণ (version) বজায় রাখে, যা একাধিক ট্রানজেকশনকে ডেটার উপর কাজ করতে এবং একই সময়ে সম্পাদনা করার সময় কনফ্লিক্ট ছাড়াই সফল হতে সাহায্য করে।

MVCC ডাটাবেসে ডেটার প্রতিটি সংস্করণ একটি পৃথক রেকর্ড হিসেবে থাকে, যার ফলে ট্রানজেকশনসমূহকে সুনির্দিষ্ট এটমিক এবং স্বতন্ত্র রাখার সুযোগ দেয়।


MVCC কীভাবে কাজ করে?

MVCC ডাটাবেসে একটি ডকুমেন্ট বা রেকর্ড যখন পরিবর্তিত হয়, তখন একটি নতুন সংস্করণ তৈরি হয়। পুরনো সংস্করণটি পুরানো ট্রানজেকশনগুলির জন্য উপলব্ধ থাকে, এবং নতুন সংস্করণটি নতুন ট্রানজেকশনগুলির জন্য প্রাপ্ত। এটি ডেটার প্রতি ট্রানজেকশনকে আলাদা আলাদাভাবে দেখার সুযোগ দেয়, যাতে তারা নিজেদের কাজ করতে পারে এবং একে অপরের মধ্যে কোনো কনফ্লিক্ট সৃষ্টি না হয়।

কীভাবে কাজ করে:

  1. ডেটার সংস্করণ সৃষ্টি:
    • যখন কোনো ডকুমেন্ট বা রেকর্ডে পরিবর্তন হয়, তখন সেটি একটি নতুন সংস্করণ হিসেবে সংরক্ষিত হয়। এই নতুন সংস্করণটি পুরনো সংস্করণটির স্থানে বসে না, বরং একটি নতুন রেকর্ড তৈরি হয়।
  2. ডেটার একাধিক সংস্করণ:
    • একটি ডেটার একাধিক সংস্করণ থাকতে পারে। প্রতিটি সংস্করণ একটি _rev (রিভিশন নম্বর) ফিল্ড দিয়ে চিহ্নিত থাকে, যা সংস্করণের ইতিহাস ট্র্যাক করে। এর মাধ্যমে একটি ট্রানজেকশন যখন ডেটা অ্যাক্সেস করে, তখন তা বর্তমান সংস্করণ দেখবে।
  3. Read and Write:
    • যখন একাধিক ট্রানজেকশন একই ডেটা পড়ে বা লেখে, তারা তাদের নিজস্ব সংস্করণটি দেখতে পায় এবং একে অপরের সাথে কনফ্লিক্ট সৃষ্টি না করেই কাজ করে। একজন ট্রানজেকশন ডেটা আপডেট করার সময় অন্যরা আগের সংস্করণটি পড়তে থাকে।
  4. স্মার্ট কনফ্লিক্ট রেজল্যুশন:
    • যদি একাধিক ট্রানজেকশন একই ডেটা পরিবর্তন করে এবং সংস্করণের মধ্যে কনফ্লিক্ট হয়, MVCC সিস্টেমে এই কনফ্লিক্টের সমাধান হতে পারে। উদাহরণস্বরূপ, এক ট্রানজেকশন ডেটা আপডেট করার আগে আরেকটি ট্রানজেকশন সেটি আপডেট করতে পারে, তবে আগের ট্রানজেকশন কনফ্লিক্ট হলে একে বাতিল করা হতে পারে।

MVCC এর উপকারিতা

  1. উচ্চ পারফরম্যান্স:
    • MVCC ডাটাবেসের মাধ্যমে, একাধিক ট্রানজেকশন একই সময়ে ডেটার উপর কাজ করতে পারে, এবং একে অপরকে ব্লক না করে। এর ফলে ডেটাবেস সিস্টেমের পারফরম্যান্স উন্নত হয়।
  2. কনসিস্টেন্সি:
    • ডেটা অ্যাক্সেস করার সময় একাধিক ট্রানজেকশন একে অপরকে প্রভাবিত না করে একে অপরকে স্বতন্ত্রভাবে কাজ করার সুযোগ পায়, ফলে ডেটা কনসিস্টেন্ট থাকে।
  3. অডিটিং এবং ইতিহাস:
    • MVCC ডাটাবেসে ডেটার প্রতিটি সংস্করণ সংরক্ষিত থাকে, যার ফলে ডেটার পরিবর্তন ইতিহাস ট্র্যাক করা যায়। এটি অডিটিং বা রিভার্সিবিলিটি (Reversibility) সুবিধা প্রদান করে।
  4. কনফ্লিক্ট রেজল্যুশন:
    • একাধিক ব্যবহারকারী যদি একই সময়ে ডেটা আপডেট করে, MVCC কনফ্লিক্টকে স্বয়ংক্রিয়ভাবে ম্যানেজ করে এবং সিস্টেমকে স্থিতিশীল রাখে।

MVCC এর ব্যবহার

MVCC অনেক ডাটাবেস সিস্টেমে ব্যবহার হয়, যার মধ্যে কিছু জনপ্রিয় ডাটাবেস সিস্টেম হলো:

  1. CouchDB:
    CouchDB একটি document-oriented database, যা MVCC ব্যবহার করে ডেটার প্রতিটি সংস্করণ ট্র্যাক এবং কনফ্লিক্ট ম্যানেজ করতে সাহায্য করে। এর ফলে একাধিক ট্রানজেকশন ডেটা এক্সেস এবং আপডেট করতে পারে কোন কনফ্লিক্ট ছাড়াই।
  2. PostgreSQL:
    PostgreSQL একটি relational database যা MVCC ব্যবহার করে। এটি ডেটার একাধিক সংস্করণ সংরক্ষণ করে এবং ট্রানজেকশনগুলিকে আলাদা আলাদা ভাবে কাজ করার সুযোগ দেয়, যাতে ডেটা কনসিস্টেন্ট থাকে।
  3. Oracle:
    Oracle ডাটাবেসে MVCC ব্যবহৃত হয়, যা অ্যাপ্লিকেশনগুলোকে ডেটা আপডেট করার সময় কোনো ব্লক ছাড়াই একে অপরের সঙ্গে কাজ করার সুযোগ দেয়।

MVCC এর সীমাবদ্ধতা

  1. স্টোরেজ স্পেস:
    • ডেটার একাধিক সংস্করণ রাখার কারণে স্টোরেজ স্পেসের প্রয়োজন বাড়তে পারে, বিশেষ করে যদি বড় এবং জটিল ডেটাসেট থাকে।
  2. কনফ্লিক্ট রেজল্যুশন:
    • যদিও MVCC কনফ্লিক্ট রেজল্যুশন সমর্থন করে, অনেক সময় কনফ্লিক্ট সমাধান করতে ম্যানুয়াল হস্তক্ষেপের প্রয়োজন হতে পারে।
  3. প্রদর্শন:
    • বিভিন্ন সংস্করণ রাখা এবং ট্রানজেকশনগুলির মধ্যে নির্দিষ্ট সময়ে কনফ্লিক্ট রেজল্যুশন করার জন্য সিস্টেম কিছুটা জটিল হতে পারে।

উপসংহার

MVCC (Multi-Version Concurrency Control) একটি শক্তিশালী কনকারেন্ট কন্ট্রোল প্রযুক্তি, যা একাধিক ট্রানজেকশনকে নিরাপদে একসাথে কাজ করার সুযোগ দেয় এবং ডেটার কনসিস্টেন্সি বজায় রাখে। এটি ডেটাবেসের পারফরম্যান্স, স্কেলেবিলিটি এবং ব্যবহারকারীদের জন্য একটি উন্নত কাজের অভিজ্ঞতা তৈরি করে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion